/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.util;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import pe.edu.upc.dew.model.Actividad;
import pe.edu.upc.dew.model.Paquete;
import pe.edu.upc.dew.model.Servicio;

/**
 *
 * @author Pedro
 */
public class Util {

    public static String getDatoStringPantalla( String nombreCampo, HttpServletRequest req){
        String dato = req.getParameter(nombreCampo);
        if(dato == null){
            dato = new String();
            if(req.getAttribute(nombreCampo) != null){
                dato = (String)req.getAttribute(nombreCampo);
            }
        }
        return dato;
    }

    public static Double getDatoDoublePantalla( String nombreCampo, HttpServletRequest req){
        String dato = req.getParameter(nombreCampo);
        Double valor = new Double("0.0");
        if(dato == null){
            dato = "0.0";
            if(req.getAttribute(nombreCampo) != null){
                dato = (String)req.getAttribute(nombreCampo);
            }
        }
        try{
            valor = Double.parseDouble(dato);
        }catch (NumberFormatException nex){

        }
        return valor;
    }
    public static ArrayList obtenerOpcionesMultiplesPantalla(String nombreCampo, String nombreLista, HttpServletRequest req) {
        ArrayList lista = new ArrayList();
        String[] datos = req.getParameterValues(nombreCampo);
        List elementos = (List)req.getSession().getAttribute(nombreLista);

        if (elementos == null) {
            elementos = (List)req.getSession().getServletContext().getAttribute(nombreLista);
        }

        if(datos != null && elementos != null){
            for (Object element : elementos) {
                for (int i = 0; i < datos.length; i++) {
                    String codigoSeleccionado = datos[i];
                    if(element instanceof Servicio){
                        if(String.valueOf(((Servicio)element).getCodigo()).equals(codigoSeleccionado)){
                            lista.add(element);
                        }
                    }
                    if(element instanceof Actividad){
                        if(String.valueOf(((Actividad)element).getCodigo()).equals(codigoSeleccionado)){
                            lista.add(element);
                        }
                    }

                }
            }
        }
        return lista;
    }
    public static Paquete obtenerPaquetePantalla(String nombreCampo, String nombreLista, HttpServletRequest req) {
        String dato = Util.getDatoStringPantalla(nombreCampo,req);
        List<Paquete> elementos = (List<Paquete>)req.getSession().getServletContext().getAttribute(nombreLista);
        if(dato != null){
            for (Paquete element : elementos) {

                if(element instanceof Paquete){
                    if(String.valueOf(element.getCodigo()).equals(dato)){
                        return(element);
                    }
                }
            }
        }
        return new Paquete();
    }

    public static Integer convertirStringHoraAEntero(String hora){
        Integer num = 0;
        if(hora.length() == 5){
            //01:00
            num = Integer.valueOf(hora.substring(0, 2));
        }
        if(hora.length() == 4){
            //1:00
            num = Integer.valueOf(hora.substring(0, 1));
        }

        return num;
    }
}
